package com.example.spindrift.Controllers;

import com.example.spindrift.dao.SysRoleMapper;
import com.example.spindrift.models.SysRole;
import com.example.spindrift.service.RoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/Role")
public class RoleController{
    @Autowired
    RoleService roleService;

    /**
     * 获取所有角色信息
     * @return
     */
    @GetMapping("/getAllRole")
    public List<SysRole> getAllRole() {
        return roleService.getAllRole();
    }

    /**
     * 根据角色ID获取指定的角色信息
     * @param roleId 角色ID
     * @return
     */
    @GetMapping("/getRoleById")
    public SysRole getRoleById(@RequestParam Integer roleId) {
        return roleService.getRoleById(roleId);
    }

    /**
     * 根据角色名称模糊查询角色信息
     * @param keyword 角色关键字
     * @return
     */
    @GetMapping("/searchRole")
    public List<SysRole> searchRole(@RequestParam String keyword) {
        return roleService.searchRole(keyword);
    }

    /**
     * 获取指定用户的角色信息
     * @param userId 用户ID
     * @return
     */
    @GetMapping("/getRoleByUserId")
    public List<SysRole> getRoleByUserId(@RequestParam Integer userId) {
        return getRoleByUserId(userId);
    }

    /**
     * 添加一条角色信息
     * @param role 角色信息
     * @return
     */
    @PostMapping("insertRole")
    public Boolean insertRole(@RequestBody SysRole role) {
        return roleService.insertRole(role) > 0;
    }

    /**
     * 更新一条角色信息
     * @param role 新的角色信息
     * @return
     */
    @PutMapping("/updateRole")
    public Boolean updateRole(@RequestBody SysRole role) {
        return roleService.updateRole(role) > 0;
    }

    /**
     * 根据角色ID删除一条角色信息
     * @param roleId　角色ID
     * @return
     */
    @DeleteMapping("/deleteRole")
    public Boolean deleteRole(@RequestParam Integer roleId) {
        return roleService.deleteRole(roleId) > 0;
    }
}
